1.0 Field of the Invention
This invention relates generally to scripting languages, and more particularly to an XML based scripting language.
2.0 Description of the Related Art
Workflow management systems are computer applications which define, manage and execute business processes. A process is defined as a series of steps leading to a desired result. A process is analogous to a flowchart, and process steps are analogous to the boxes on a flowchart. A process transition represents the flow of control between steps. These process transitions are analogous to the lines connecting the boxes on a flowchart. Document routing systems and business process integration systems are examples of workflow management systems.
Using a workflow management system typically consists of two major types of activity: design time activity and run time activity. Design time activity consists of understanding a business requirement, creating a process that satisfies the requirement, and defining the process to the workflow management system. The design time activity occurs infrequently, relative to the run time activity. Run time activity consists of executing the process created during the design time activity. Typical processes are created once and run many times. Processes may also be modified during their life to adapt to changing business requirements.
At run time, a component of the system, typically referred to as a workflow engine, is responsible for accepting work from external sources, sequencing the work from step to step in the process, for example, using conditional logic and/or the transitions that are defined between steps, and waiting for the step to be performed. Steps include manual steps that require user interaction, and automated steps that can be invoked directly by the workflow engine.
Users interact with manual steps using a user interface, which is typically graphical. Depending on the type of step, the user interface may be general or custom. A general user interface works for many types of manual steps. The user interface typically displays lists of work to do and lets the user update the status of the work. This updated status is used by the workflow engine to make decisions about how to route the work to a subsequent step, for example, success or failure. A custom user interface may be required when the work performed in the step is specific to the step.
Automated steps typically consist of off-the-shelf and custom applications that are invoked directly by the workflow engine. Examples include applications that process data sets, for example, sorting, indexing, barcoding and formatting, or applications that interact with hardware devices.
Workflow management systems typically separate the business or flow-level logic from the task or application-level logic so that the business logic or process can be manipulated and managed independently of the applications that support it. Many workflow management systems provide a means for implementing steps and graphical user interfaces, typically, through the use of a programming language. Over the years, many languages have been used for this purpose, including interpreted scripting languages and compiled executable languages. The purpose of the programmability is to provide the interface between the workflow system and the external environment in which the workflow system executes, that is, the outside world. This may be as simple as providing the glue that links the workflow constructs to external constructs, for example, retrieving workflow data from a database, formatting an argument list, invoking an external program and storing the resulting status in the workflow database. Alternately, this may be as complex as providing a fully featured graphical user interface.
There are problems with existing approaches to this type of programmability in workflow management systems. Developing compiled programs requires advanced skills in software development. This detracts from the promise of workflow management as a means of simplifying development processes. In addition, compiled programs require a series of time consuming design, edit-compile, and link-test debug cycles. These cycles are difficult to integrate into the workflow management environment.
Scripting languages may lower the level of skill required, but often this comes at the cost of providing a less rigorous approach to solving the problem. In addition, scripting languages typically do not provide access to of-the-shelf software for reuse, such as, Java® (Java is a registered trademark of Sun Microsystems, Inc.) class libraries.
The Extensible Markup Language (XML) is a standard for the exchange of information on the World Wide Web, and elsewhere. The World Wide Web consortium provides an XML recommendation. With the emergence of XML standards for defining business processes, for example, the Business Process Execution Language (BPEL), it would be desirable to have a scripting language that plugs-in to the XML framework.
Therefore there is a need for an improved scripting language that plugs-in to the XML framework. The scripting language should also allow other software to be accessed.